<!--SIF Implementation Specification 2.2-6 (March 17, 2008)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="CurriculumStructureType">
    <xs:annotation>
      <xs:documentation>
								An object designed to contain instructional objects such as units, lessons, activities, and assessments—or other containers—joined together
							under a particular topic and/or duration.
						</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Titles">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Title" maxOccurs="unbounded" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Name of this type of curriculum object (e.g., "American Revolutionary War")</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Description" minOccurs="0" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Description of this curriculum object</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SubjectArea" minOccurs="0" nillable="true" type="sif:SubjectAreaType" />
      <xs:element name="CurriculumHierarchyLevel">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Number" type="xs:unsignedInt">
              <xs:annotation>
                <xs:documentation>
							Integer assigned to each hierarchical level within the CurriculumStructure tree. The top level is 1.
						</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Name" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Used to describe what role this is serving in the structure. Some curriculum objects describe their levels in terms of programs of study, courses and units. Others use other terms. This attribute names the level of the item.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Description" type="xs:string">
              <xs:annotation>
                <xs:documentation>Used to describe what role this is serving in the structure. Some curriculum objects describe their levels in terms of programs of study, courses and units. Others use other terms.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="PredecessorObjects" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CurriculumStructureRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType">
              <xs:annotation>
                <xs:documentation>GUID assigned to the CurriculumStructure object directly above it in the hierarchy tree.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningObjectives" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningObjective" minOccurs="0" maxOccurs="unbounded" type="xs:string">
              <xs:annotation>
                <xs:documentation>Narrative description of a learning objective.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ComponentObjects" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ComponentObject" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:annotation>
                  <xs:documentation>A GUID reference to a component object.</xs:documentation>
                </xs:annotation>
                <xs:simpleContent>
                  <xs:extension base="sif:IdRefType">
                    <xs:attribute name="SIF_RefObject" use="required">
                      <xs:annotation>
                        <xs:documentation>The type of learning object being referenced.</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:token">
                          <xs:enumeration value="CurriculumStructure" />
                          <xs:enumeration value="Lesson" />
                          <xs:enumeration value="Activity" />
                          <xs:enumeration value="Assessment" />
                          <xs:enumeration value="LearningResource" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LearningStandards" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="LearningStandardItemRefId" minOccurs="0" maxOccurs="unbounded" type="sif:IdRefType">
              <xs:annotation>
                <xs:documentation>GUID of an associated LearningStandardItem object</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="SIF_Metadata" minOccurs="0" nillable="true" type="sif:SIF_MetadataType" />
      <xs:element name="SIF_ExtendedElements" minOccurs="0" nillable="true" type="sif:SIF_ExtendedElementsType" />
    </xs:sequence>
    <xs:attribute name="RefId" use="required" type="sif:RefIdType">
      <xs:annotation>
        <xs:documentation>GUID for this particular object.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute ref="xml:lang" use="required" />
  </xs:complexType>

  <xs:element name="CurriculumStructure" type="sif:CurriculumStructureType" />

</xs:schema>